package net.tngou.crawler.drug;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang3.math.NumberUtils;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.alibaba.fastjson.JSONObject;

import net.tngou.c4j.util.HttpUtil;
import net.tngou.cache.CacheEngine;
import net.tngou.cache.TgCacheEngine;
import net.tngou.crawler.util.StringUtil;

/**
 * 宝芝林网上药店
 * @author tngou@tngou.net
 *
 */
public class COM_360bzl extends BaseCrawler implements CrawlerDrug {
	private static final Logger log= LoggerFactory.getLogger(COM_360bzl.class);
	private String url="http://www.360bzl.com/goods-{}.html";
	
	
	@Override
	public JSONObject getJson(URL url) {
		log.info("请求页面:{}",url.toString());
		Document doc = HttpUtil.get(url.toString());
		if(doc==null) return null;
		json.put("url", url.toString());
		json.put("onlinepharmacy", onlinepharmacy);
		//唯一值
		json.put("un",url.toString().split("-")[1].replaceAll(".html", "-").split("-")[0]);
		//标签
		Elements crumbs = doc.getElementsByClass("crumbs");
		if(crumbs.first()!=null)
		{
					Elements as = crumbs.first().getElementsByTag("a");
					List<String> list = new ArrayList<>();
					for (int i = 1; i < as.size()-2; i++) {
						list.add(as.get(i).text());
					}				
					json.put("tag", list);
		}
		//图片
		Element thumblist = doc.getElementById("thumblist");
		if(thumblist!=null)
		{
					Elements imgs = thumblist.getElementsByTag("img");
					List<String> list = new ArrayList<>();
					imgs.forEach(e->{
						String src = e.attr("src");
						if(StringUtil.isNotEmpty(src))
						{
							list.add(src);
						}
					});
					json.put("picture", list);
		}
		//价格
		Element price = doc.getElementById("p_1");
		if(price!=null)
		{
				String value = price.text();	
				json.put("price", getPrice(value));				
		}
		//类型
		Elements suit_name = doc.getElementsByClass("suit-name");
		if(suit_name.first()!=null)
		{
			Elements img = suit_name.first().getElementsByTag("img");
			if(img.first()!=null)
			{
				String alt = img.first().attr("alt");
				if(StringUtil.isNotEmpty(alt))
				{
					if(alt.toUpperCase().indexOf("RX")>=0)
					{
						json.put("ptype", Ptype.RX处方药.ordinal());
					}if(alt.toUpperCase().indexOf("OTC")>=0)
					{
						json.put("ptype", Ptype.OTC非处方甲类.ordinal());
						if(alt.toUpperCase().indexOf("乙")>=0)
							json.put("ptype", Ptype.OTC非处方乙类.ordinal());
					}
				}
			}
		}
		//说明书
		Elements instruction = doc.getElementsByClass("con");
		if(instruction.first()!=null)
		{
			JSONObject instructions = instructions_s(instruction.first().text());
			Elements msg = doc.getElementsByClass("msg");
			if(msg.first()!=null)
			instructions = instructions(msg.first(),instructions);
			json.put("instructions",instructions );			
		}


		return json;
	}
	
	private JSONObject instructions(Element element, JSONObject json) {
		Elements dls = element.getElementsByTag("dl");
		for (Element dl : dls) {
			Element dt = dl.getElementsByTag("dt").first();
			Element dd = dl.getElementsByTag("dd").first();
			if(dt!=null&&dd!=null)
			{
				String key = StringUtil.cleanKey(dt.text());
				String value=StringUtil.RemoveEmpty(dd.text());
				if(!"商品编号".equals(key )||!"商品品牌".equals(key ))
				{
					json.put(key, value);
				}
			}
			
		}
		
		return name_number(json);
	}
	
	
}
